home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 05.zip / BS1 part 5 / SASC_6.0_Disk_4.adf / Compiler_Headers / Include / rexx / rxslib.h < prev    next >
C/C++ Source or Header  |  1992-07-30  |  5KB  |  110 lines

  1. #ifndef REXX_RXSLIB_H
  2. #define REXX_RXSLIB_H
  3. /*
  4. **    $Filename: rexx/rxslib.h $
  5. **    $Release: 2.04 Includes, V37.4 $
  6. **    $Revision: 1.6 $
  7. **    $Date: 91/11/08 $
  8. **
  9. **    The header file for the REXX Systems Library
  10. **
  11. **    (C) Copyright 1987,1988,1989,1990 William S. Hawes
  12. **    (C) Copyright 1990-1991 Commodore-Amiga, Inc.
  13. **        All Rights Reserved
  14. */
  15.  
  16. #ifndef REXX_STORAGE_H
  17. #include "rexx/storage.h"
  18. #endif
  19.  
  20. #define RXSNAME  "rexxsyslib.library"
  21. #define RXSDIR     "REXX"
  22. #define RXSTNAME "ARexx"
  23.  
  24. /* The REXX systems library structure.    This should be considered as    */
  25. /* semi-private and read-only, except for documented exceptions.    */
  26.  
  27. struct RxsLib {
  28.    struct Library rl_Node;           /* EXEC library node        */
  29.    UBYTE    rl_Flags;               /* global flags            */
  30.    UBYTE    rl_Shadow;               /* shadow flags            */
  31.    APTR     rl_SysBase;           /* EXEC library base        */
  32.    APTR     rl_DOSBase;           /* DOS library base        */
  33.    APTR     rl_IeeeDPBase;           /* IEEE DP math library base    */
  34.    LONG     rl_SegList;           /* library seglist        */
  35.    LONG     rl_NIL;               /* global NIL: filehandle    */
  36.    LONG     rl_Chunk;               /* allocation quantum        */
  37.    LONG     rl_MaxNest;           /* maximum expression nesting    */
  38.    struct NexxStr *rl_NULL;           /* static string: NULL        */
  39.    struct NexxStr *rl_FALSE;           /* static string: FALSE        */
  40.    struct NexxStr *rl_TRUE;           /* static string: TRUE        */
  41.    struct NexxStr *rl_REXX;           /* static string: REXX        */
  42.    struct NexxStr *rl_COMMAND;           /* static string: COMMAND    */
  43.    struct NexxStr *rl_STDIN;           /* static string: STDIN        */
  44.    struct NexxStr *rl_STDOUT;           /* static string: STDOUT    */
  45.    struct NexxStr *rl_STDERR;           /* static string: STDERR    */
  46.    STRPTR    rl_Version;           /* version string        */
  47.  
  48.    STRPTR    rl_TaskName;           /* name string for tasks    */
  49.    LONG      rl_TaskPri;           /* starting priority        */
  50.    LONG      rl_TaskSeg;           /* startup seglist        */
  51.    LONG      rl_StackSize;           /* stack size            */
  52.    STRPTR    rl_RexxDir;           /* REXX directory        */
  53.    STRPTR    rl_CTABLE;           /* character attribute table    */
  54.    STRPTR    rl_Notice;           /* copyright notice        */
  55.  
  56.    struct MsgPort rl_RexxPort;           /* REXX public port        */
  57.    UWORD     rl_ReadLock;           /* lock count            */
  58.    LONG      rl_TraceFH;           /* global trace console        */
  59.    struct List rl_TaskList;           /* REXX task list        */
  60.    WORD      rl_NumTask;           /* task count            */
  61.    struct List rl_LibList;           /* Library List header        */
  62.    WORD      rl_NumLib;           /* library count        */
  63.    struct List rl_ClipList;           /* ClipList header        */
  64.    WORD      rl_NumClip;           /* clip node count        */
  65.    struct List rl_MsgList;           /* pending messages        */
  66.    WORD      rl_NumMsg;           /* pending count        */
  67.    struct List rl_PgmList;           /* cached programs        */
  68.    WORD      rl_NumPgm;           /* program count        */
  69.  
  70.    UWORD     rl_TraceCnt;           /* usage count for trace console */
  71.    WORD      rl_avail;
  72.    };
  73.  
  74. /* Global flag bit definitions for RexxMaster                */
  75. #define RLFB_TRACE RTFB_TRACE           /* interactive tracing?        */
  76. #define RLFB_HALT  RTFB_HALT           /* halt execution?        */
  77. #define RLFB_SUSP  RTFB_SUSP           /* suspend execution?        */
  78. #define RLFB_STOP  6               /* deny further invocations    */
  79. #define RLFB_CLOSE 7               /* close the master        */
  80.  
  81. #define RLFMASK    (1<<RLFB_TRACE) | (1<<RLFB_HALT) | (1<<RLFB_SUSP)
  82.  
  83. /* Initialization constants                        */
  84. #define RXSCHUNK   1024           /* allocation quantum        */
  85. #define RXSNEST    32               /* expression nesting limit    */
  86. #define RXSTPRI    0               /* task priority        */
  87. #define RXSSTACK   4096           /* stack size            */
  88.  
  89. /* Character attribute flag bits used in REXX.                */
  90. #define CTB_SPACE   0               /* white space characters    */
  91. #define CTB_DIGIT   1               /* decimal digits 0-9        */
  92. #define CTB_ALPHA   2               /* alphabetic characters    */
  93. #define CTB_REXXSYM 3               /* REXX symbol characters    */
  94. #define CTB_REXXOPR 4               /* REXX operator characters    */
  95. #define CTB_REXXSPC 5               /* REXX special symbols        */
  96. #define CTB_UPPER   6               /* UPPERCASE alphabetic        */
  97. #define CTB_LOWER   7               /* lowercase alphabetic        */
  98.  
  99. /* Attribute flags                            */
  100. #define CTF_SPACE   (1 << CTB_SPACE)
  101. #define CTF_DIGIT   (1 << CTB_DIGIT)
  102. #define CTF_ALPHA   (1 << CTB_ALPHA)
  103. #define CTF_REXXSYM (1 << CTB_REXXSYM)
  104. #define CTF_REXXOPR (1 << CTB_REXXOPR)
  105. #define CTF_REXXSPC (1 << CTB_REXXSPC)
  106. #define CTF_UPPER   (1 << CTB_UPPER)
  107. #define CTF_LOWER   (1 << CTB_LOWER)
  108.  
  109. #endif
  110.